/*
  一只小蜜蜂 (使用递归的方法求解)
  题目描述
    有一只经过训练的蜜蜂只能爬向右侧相邻的蜂房，不能反向爬行。
    请编程计算蜜蜂从蜂房 a 爬到蜂房 b 的可能路线数。
    其中，蜂房的结构如下所示。

        / \ / \ / \ / \ / \ / \                   / \
       | 1 | 3 | 5 | 7 | 9 | 11|    ...          | n |
        \ / \ / \ / \ / \ / \ / \                 \ / \
         | 2 | 4 | 6 | 8 | 10| 12|   ...           |n+1|
          \ / \ / \ / \ / \ / \ /                   \ /

  输入
    第一行为 1 个整数 n (1 <= n <= 20)，表示 n 组测试数据，
    后面是 n 行数据，每行为 1 组测试数据，包含 2 个整数 a 和 b (0 < a < b < 50)。
  输出
    对于每组测试数据, 请输出蜜蜂从蜂房 a 爬到 蜂房 b 的可能路线数, 每个示例的输出占一行。
  样例输入
    2
    1 2
    3 6
  样例输出
    1
    3
  其他说明
    这一题和如下文件中的题基本相同:
      xue_er_si/codeup/01_special_improvement/01_CSP_J/02_intermediate/03_recursive_algorithm/q_03_bee_route.cpp
*/

#include <bits/stdc++.h>

using namespace std;

int m, n;
long long a[51] = {}; // a[i] 记录 f(i) 的返回值，表示从 m 爬行到蜂房 i 共有几种爬行路线

/*
  递归函数
  1). 数学规律:
        当 n = m + 1 时, f(n) = 1;
        当 n = m + 2 时, f(n) = 2;
        否则，f(n) = f(n - 1) + f(n - 2);
  2). 为避免出现程序运行超时的现象, 对递归函数进行了优化:
        将递归函数计算得到的值记录在全局数组 a 中, 数组 a 的所有元素初始值为 0；
        如果 a[i] != 0, 则不用再次进行递归计算，直接取 a[i] 即可!
      这样可以大幅节省递归函数的运行时间!
*/
long long f(int n) {
    if (n == m + 1) {
        a[n] = 1;
    } else if (n == m + 2) {
        a[n] = 2;
    } else {
        if (a[n - 1] != 0 && a[n - 2] == 0) {
            a[n] = a[n - 1] + f(n - 2);
        } else if (a[n - 1] == 0 && a[n - 2] != 0) {
            a[n] = a[n - 2] + f(n - 1);
        } else if (a[n - 1] != 0 && a[n + 1] != 0) {
            a[n] =  a[n - 1] + a[n - 2];
        } else {
            a[n] = f(n - 1) + f(n - 2);
        }
    }
    return a[n];
}

int main() {
    int a1;

    cin >> a1;

    /*
      首先找到数学规律:
        当 n = m + 1 时, f(n) = 1;
        当 n = m + 2 时, f(n) = 2;
        否则，f(n) = f(n - 1) + f(n - 2);
      针对这种数学规律，通常可以用递推的方法进行代码实现，也可以使用递归的方法进行代码实现！
        本文中使用递归的方法来实现!
    */
    for (int i = 1; i <= a1; i++) {
        cin >> m >> n;
        for (int i = 0; i <= 84; i++) {
            a[i] = 0;
        }
        cout << f(n) << endl;
    }

    return 0;
}